package com.cencat.route.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 路线统计信息VO
 * 
 * @author cencat
 * @version 1.0
 * @since 2024-01-01
 */
@Data
@Schema(description = "路线统计信息")
public class RouteStatisticsVO {

    @Schema(description = "总路线数量")
    private Long totalRouteCount;

    @Schema(description = "活跃路线数量")
    private Long activeRouteCount;

    @Schema(description = "已发布路线数量")
    private Long publishedRouteCount;

    @Schema(description = "草稿路线数量")
    private Long draftRouteCount;

    @Schema(description = "已完成路线数量")
    private Long completedRouteCount;

    @Schema(description = "进行中路线数量")
    private Long inProgressRouteCount;

    @Schema(description = "已取消路线数量")
    private Long cancelledRouteCount;

    @Schema(description = "暂停路线数量")
    private Long pausedRouteCount;

    @Schema(description = "今日新增路线数量")
    private Long todayNewRouteCount;

    @Schema(description = "本周新增路线数量")
    private Long weekNewRouteCount;

    @Schema(description = "本月新增路线数量")
    private Long monthNewRouteCount;

    @Schema(description = "平均路线距离")
    private BigDecimal averageDistance;

    @Schema(description = "最长路线距离")
    private BigDecimal maxDistance;

    @Schema(description = "最短路线距离")
    private BigDecimal minDistance;

    @Schema(description = "平均预计时长")
    private BigDecimal averageEstimatedDuration;

    @Schema(description = "最长预计时长")
    private BigDecimal maxEstimatedDuration;

    @Schema(description = "最短预计时长")
    private BigDecimal minEstimatedDuration;

    @Schema(description = "平均运费")
    private BigDecimal averageFreight;

    @Schema(description = "最高运费")
    private BigDecimal maxFreight;

    @Schema(description = "最低运费")
    private BigDecimal minFreight;

    @Schema(description = "总运费收入")
    private BigDecimal totalFreightIncome;

    @Schema(description = "今日运费收入")
    private BigDecimal todayFreightIncome;

    @Schema(description = "本周运费收入")
    private BigDecimal weekFreightIncome;

    @Schema(description = "本月运费收入")
    private BigDecimal monthFreightIncome;

    @Schema(description = "平均路线评分")
    private BigDecimal averageRating;

    @Schema(description = "统计时间")
    private LocalDateTime statisticsTime;

}